The present invention relates generally to the field of computer-implemented software testing, and more particularly to automated testing of software under system resource constraints.
Software testing is the process of analyzing a software product to detect differences between existing and desired conditions, for example, defects, errors, or bugs, and to evaluate design features of the software product. In test automation, the software testing is performed by separate testing software in a computing environment. A test corresponds to a particular set of inputs to the software, including data and parameters, and conditions under which the software to be tested is executed, which are designed to determine whether one or more features of the software are working as desired. A test suite is a collection of tests used to test a software product.
In certain software development environments, a scarcity of system resources may constrain the ability to run all tests in a test suite. Typically, it is the amount of time available for testing that is limited. However, for example in mobile device testing, resources such as memory or power may be limited. Under these conditions, it may be desirable to select a subset of the tests that approaches the effectiveness of testing with the entire test suite. The execution of all or some of the tests in a test suite may be referred to as a test run.